package com.gqh.weather.domain.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 年份枚举
 */
@Getter
@AllArgsConstructor
public enum NianFenEnum {

    /**
     * 全部
     */
    ALL("0", "全部"),

    /**
     * 2024年
     */
    YEAR_2024("2024", "2024年"),

    /**
     * 2023年
     */
    YEAR_2023("2023", "2023年"),

    /**
     * 2022年
     */
    YEAR_2022("2022", "2022年");

    /**
     * 年份值
     */
    private final String value;

    /**
     * 年份描述
     */
    private final String description;

    /**
     * 根据值获取枚举
     *
     * @param value 年份值
     * @return 年份枚举
     */
    public static NianFenEnum fromValue(String value) {
        if (value == null) {
            return null;
        }
        for (NianFenEnum item : values()) {
            if (item.getValue().equals(value)) {
                return item;
            }
        }
        return null;
    }

    /**
     * 验证年份值是否有效
     *
     * @param value 年份值
     * @return 是否有效
     */
    public static boolean isValid(String value) {
        return fromValue(value) != null;
    }

    /**
     * 获取年份描述
     *
     * @param value 年份值
     * @return 年份描述
     */
    public static String getDescription(String value) {
        NianFenEnum item = fromValue(value);
        return item != null ? item.getDescription() : "未知年份";
    }
}
